package com.JingYan.exception;

import com.JingYan.constant.CommonConstant;
import lombok.Data;

/**
 * 描述:自定义异常
 *
 * @author pengfuhui
 * @date 2022-06-09
 */
@Data
public class XXXException extends RuntimeException{

    /**
     * 错误码 一般数字就够用 默认 9999
     */
    private int errorCode  = 9999;

    /**
     * 错误信息
     */
    private String errorMsg;

    /**
     * 带错误码的构造方法
     */
    public XXXException(int errorCode, String errorMsg){
        super(errorMsg);
        this.errorCode = errorCode;
        this.errorMsg = errorMsg;
    }

    /**
     * 默认错误码的构造方法
     */
    public XXXException(String errorMsg){
        super(errorMsg);
        this.errorCode = CommonConstant.COMMON_ERROR_CODE;
        this.errorMsg = errorMsg;
    }

    /**
     * 带异常信息的构造方法
     * @param errorMsg 错误描述
     * @param e 异常
     */
    public XXXException(String errorMsg, Throwable e) {
        super(errorMsg, e);
        this.errorMsg = errorMsg;
    }

    /**
     * 带全部信息异常构造
     * @param errorMsg 异常信息
     * @param errorCode 错误码
     * @param e 异常信息,一般是在构建前产生的异常
     */
    public XXXException(String errorMsg, int errorCode, Throwable e) {
        super(errorMsg, e);
        this.errorMsg = errorMsg;
        this.errorCode = errorCode;
    }
}
